每次调用函数模板时显式地指定模板参数(例如，concat<std::string, int>(s, 3))，代码很快就会变得很笨重。幸运的是，C++编译器可以使用模板参数推导功能自动确定模板参数。

本章中，我们会解释模板参数推导的详细过程。就像在C++中出现的情况一样，许多规则通常会产生直观的结果。

尽管模板参数推导最初是为了简化函数模板调用添加的，但后来扩展到了其他用途，包括从初始化式确定变量的类型。